﻿namespace MicroCloud.Identity.Entities
{
    /// <summary>
    /// 实体类：用户信息
    /// </summary>
    [Description("用户信息")]
    [ValueGenerate(ValueGenerateRule.Never, ValueGenerateMode.Snowflake)]
    [Table(nameof(User), Schema = TableSchemaConstants.Identity)]
    public class User : UserBase<long>
    {
        #region "属性"
        //导航属性
        #region "获取或设置 用户证照"
        /// <summary>
        /// 获取或设置 用户证照
        /// </summary>
        public virtual UserPortfolio Portfolio { get; set; } = new UserPortfolio();
        #endregion
        #region "获取或设置 用户详细信息"
        /// <summary>
        /// 获取或设置 用户详细信息
        /// </summary>
        public virtual UserDetail Detail { get; set; } = new UserDetail();
        #endregion

        #region "获取或设置 用户声明信息集合"
        /// <summary>
        /// 获取或设置 用户声明信息集合
        /// </summary>
        public virtual ICollection<UserClaim> Claims { get; set; } = new List<UserClaim>();
        #endregion
        #region "获取或设置 用户第三方登录信息集合"
        /// <summary>
        /// 获取或设置 用户第三方登录信息集合
        /// </summary>
        public virtual ICollection<UserLogin> Logins { get; set; } = new List<UserLogin>();
        #endregion
        #region "获取或设置 用户令牌信息集合"
        /// <summary>
        /// 获取或设置 用户令牌信息集合
        /// </summary>
        public virtual ICollection<UserToken> Tokens { get; set; } = new List<UserToken>();
        #endregion

        #region "获取或设置 分配的用户角色信息集合"
        /// <summary>
        /// 获取或设置 分配的用户角色信息集合
        /// </summary>
        public virtual ICollection<UserRole> UserRoles { get; set; } = new List<UserRole>();
        #endregion
        #region "获取或设置 分配的用户组织机构信息"
        /// <summary>
        /// 获取或设置 分配的用户组织机构信息
        /// </summary>
        public virtual ICollection<UserOrganization> UserOrganizations { get; set; } = new List<UserOrganization>();
        #endregion

        #endregion

    }
}
